package com.jwds.digital.bios.business.service.service.belt;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jwds.digital.bios.business.core.infrastructure.entity.belt.BeltRoutePerformanceHour;
import com.jwds.digital.bios.business.core.infrastructure.dto.belt.BeltRoutePerformanceHourReqDTO;
import com.jwds.digital.bios.business.core.infrastructure.vo.belt.BeltRoutePerformanceHourRespVO;
import com.jwds.tdc.framework.application.lib.page.PageRequest;
import com.jwds.tdc.framework.application.lib.page.PageResponse;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 线路效能小时表接口
 *
 * @author 林柏云
 * @date 2024-10-24
 */
public interface IBeltRoutePerformanceHourService extends IService<BeltRoutePerformanceHour>{

  /**
   * 通过id查询
   * @param id 主键id
   * @return RespVO 查询结果
   */
  BeltRoutePerformanceHourRespVO queryById(Long id);

  /**
   * 分页查询
   * @param pageRequest 分页查询参数
   * @return pageResponse 分页查询结果
   */
  PageResponse<BeltRoutePerformanceHourRespVO> page(PageRequest<BeltRoutePerformanceHourReqDTO> pageRequest);

  /**
   * 列表查询
   * @param reqDto 查询条件
   * @return respVOList 查询结果
   */
  List<BeltRoutePerformanceHourRespVO> list(BeltRoutePerformanceHourReqDTO reqDto);

  /**
   * 新增
   * @param reqDto 新增对象
   */
  void add(BeltRoutePerformanceHourReqDTO reqDto);

  /**
   * 批量新增
   * @param reqDtoList 新增对象列表
   */
  void batchAdd(List<BeltRoutePerformanceHourReqDTO> reqDtoList);

  /**
   * 更新
   * @param reqDto 更新对象
   */
  void update(BeltRoutePerformanceHourReqDTO reqDto);

  /**
   * 根据Id删除
   * @param id 主键id
   */
  void delete(Long id);

  /**
   * 批量删除
   * @param ids 主键id列表
   */
  void batchDelete(List<Long> ids);

    /**********扩展查询************/
  /**
   * 线路效能小时信息
   *
   * @param routeId 线路id
   * @return respVo 查询结果
   */
  BeltRoutePerformanceHourRespVO getLineEfficiencyHour(Long routeId);

  /**
   * 线路效能小时单条皮带信息
   * @param id
   * @return
   */

  List<Map<String, Object>> getBeltInfoById(Long id);
}
